<!doctype html>
<html lang="ko">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0">
<link rel="shortcut icon" type="image/x-icon" href="../assets/favicon.ico">
<title>source\jindo.FileUploader.js - Jindo Component - AjaxUI@NHN</title>
<link rel="stylesheet" type="text/css" href="../assets/prettify/prettify-min.css" media="screen">
<script type="text/javascript">
	var isMobile = (function() {
		var r = window.devicePixelRatio || 1;
		if (/windows phone/i.test(navigator.userAgent)) { r = 2; }
		
		var s = Math.max(screen.width / r, screen.height / r);
		
		var m = s < 1024;
		var href = m ? "api.mobile.css" : "api.css";
		document.write('<link rel="stylesheet" type="text/css" href="../assets/' + href + '" media="screen">');
		
		return m;
	})();
</script>

<script type="text/javascript" src="../assets/jindo.desktop.min.js"></script>
<script type="text/javascript" src="../assets/jindo_component.min.js"></script>
</head>
<body class="api-page">
<div id="wrap" class="api-main"><!-- 2Depth 접기 : lft_fold 추가 -->

	<div id="header">
		<h1><a href="../index.html"><span class="blind">JindoJS</span></a></h1>
		<div class="info">
			<span class="version">version 1.6.0</span>
			<span class="bar">|</span>
			<span class="help"><span class="ic_help"></span><a href="http://devcode.nhncorp.com/projects/jindo-component/issue" target="_blank">버그신고/문의</a></span>
		</div>
		<div class="menu">
			<button type="button" id="toggle_search_btn" class="btn_sch"><span class="blind">검색</span></button>
			<button type="button" id="toggle_list_btn" class="btn_snb btn_snb_on"><span class="blind">메뉴</span></button>
			<!-- [D] 클릭시 btn_sch_on,btn_snb_on 추가 -->
		</div>
	</div>

	<!-- sch_frm -->
	<div class="sch_frm hide_when_small">
		<h2 class="blind">검색</h2>
		<div class="filter">
			<input type="search" id="api-filter" placeholder="검색어를 입력하세요.">
		</div>
		<div id="search-tab" style="display:none;">
			<ul class="tabs">
			<li class="tc-tab">전체</li>
			<li class="tc-tab">키워드</li>
			<li class="tc-tab">클래스</li>
			<li class="tc-tab">메서드</li>
			<li class="tc-tab">프로퍼티</li>
			<li class="tc-tab">이벤트</li>
			</ul>
			<div class="panels">
				<ul id="api-all" class="tc-panel"></ul>
				<ul id="api-keywords" class="tc-panel"></ul>
				<ul id="api-classes" class="tc-panel"></ul>
				<ul id="api-methods" class="tc-panel"></ul>
				<ul id="api-attrs" class="tc-panel"></ul>
				<ul id="api-events" class="tc-panel"></ul>
			</div>

		</div>
	</div>
	<!-- // sch_frm -->

	<!-- container -->
	<div id="container">
		<!-- left-columns -->
		<div id="left-columns" class="sidemenu has_scrollbar">
			<h2 class="blind"><a href="../index.html"><span>APIs</span></a></h2>
<div class="snb depth1 scrollbar hide_when_small">
	<!-- [D] style="width:135px; height:384px; -->
	<div class="scrollbar-box">
		<div class="scrollbar-content">
			<div><ul>
			            <li class="">
			            	<a href="../classes/jindo.Accordion.html" class="">
			                	Accordion
								
								

							    
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.AjaxHistory.html" class="">
			                	AjaxHistory
								
								

							    
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.BrowseButton.html" class="">
			                	BrowseButton
								
								

							    
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.Cache.html" class="">
			                	Cache
								
								

							    
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.Calendar.html" class="">
			                	Calendar
								
								

							    
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.Canvas.html" class="">
			                	Canvas
								
								

							    
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.CheckBox.html" class="">
			                	CheckBox
								
								

							    
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.CircularRolling.html" class="">
			                	CircularRolling
								
								

							    
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.Clipboard.html" class="">
			                	Clipboard
								
								

							    
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.Component.html" class="">
			                	Component
								
								

							    
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.DataBridge.html" class="">
			                	DataBridge
								
								

							    
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.DatePicker.html" class="">
			                	DatePicker
								
								

							    
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.DefaultTextValue.html" class="">
			                	DefaultTextValue
								
								

							    
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.Dialog.html" class="">
			                	Dialog
								
								

							    
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.DragArea.html" class="">
			                	DragArea
								
								

							    
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.DropArea.html" class="">
			                	DropArea
								
								

							    
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.DynamicTree.html" class="">
			                	DynamicTree
								
								

							    
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.Effect.html" class="">
			                	Effect
								
								

							    
						        
						            <span class="flag static" title="static"><span class="blind">static</span></span>
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.FileUploader.html" class="">
			                	FileUploader
								
								

							    
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.FloatingLayer.html" class="">
			                	FloatingLayer
								
								

							    
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.Foggy.html" class="">
			                	Foggy
								
								

							    
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.Formatter.html" class="">
			                	Formatter
								
								

							    
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.HTMLComponent.html" class="">
			                	HTMLComponent
								
								

							    
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.InlineTextEdit.html" class="">
			                	InlineTextEdit
								
								

							    
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.LayerEffect.html" class="">
			                	LayerEffect
								
								

							    
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.LayerManager.html" class="">
			                	LayerManager
								
								

							    
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.LayerPosition.html" class="">
			                	LayerPosition
								
								

							    
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.LazyLoading.html" class="">
			                	LazyLoading
								
								

							    
						        
						            <span class="flag static" title="static"><span class="blind">static</span></span>
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.ModalDialog.html" class="">
			                	ModalDialog
								
								

							    
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.MouseGesture.html" class="">
			                	MouseGesture
								
								

							    
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.MultipleAjaxRequest.html" class="">
			                	MultipleAjaxRequest
								
								

							    
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.NumberFormatter.html" class="">
			                	NumberFormatter
								
								

							    
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.NumericStepper.html" class="">
			                	NumericStepper
								
								

							    
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.Pagination.html" class="">
			                	Pagination
								
								

							    
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.Rolling.html" class="">
			                	Rolling
								
								

							    
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.RollingChart.html" class="">
			                	RollingChart
								
								

							    
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.RolloverArea.html" class="">
			                	RolloverArea
								
								

							    
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.RolloverClick.html" class="">
			                	RolloverClick
								
								

							    
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.ScrollBar.html" class="">
			                	ScrollBar
								
								

							    
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.ScrollBox.html" class="">
			                	ScrollBox
								
								

							    
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.SelectArea.html" class="">
			                	SelectArea
								
								

							    
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.SelectBox.html" class="">
			                	SelectBox
								
								

							    
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.Slider.html" class="">
			                	Slider
								
								

							    
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.StarRating.html" class="">
			                	StarRating
								
								

							    
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.TabControl.html" class="">
			                	TabControl
								
								

							    
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.TextRange.html" class="">
			                	TextRange
								
								

							    
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.Timer.html" class="">
			                	Timer
								
								

							    
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.Transition.html" class="">
			                	Transition
								
								

							    
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.Tree.html" class="">
			                	Tree
								
								

							    
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.UIComponent.html" class="">
			                	UIComponent
								
								

							    
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.UploadQueue.html" class="">
			                	UploadQueue
								
								

							    
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.WatchInput.html" class="">
			                	WatchInput
								
								

							    
						        
			            	</a>
			            </li>
			        </ul></div>
		</div>
	</div>
	<div class="scrollbar-v">
		<div class="scrollbar-button-up"></div>
		<div class="scrollbar-track">
			<div class="scrollbar-thumb" style="top: 0px; height: 222px; "></div>
		</div>
		<div class="scrollbar-button-down"></div>
	</div>
</div>


<button type="button" title="펼치기" class="btn_open">바로가기 열기<span class="ic"></span></button>
<button type="button" title="접기" class="btn_close">바로가기 닫기<span class="ic"></span></button>

		</div>
		<!-- // left-columns -->

		<!-- main content -->
		<div id="main">
			<div class="main_fix">
				<div class="content">
	
	<h1 class="blind">source/jindo.FileUploader.js</h1>
	<div class="tc-panel first">
		<dl class="relation">
			<dt>파일명</dt>
			<dd>jindo.FileUploader.js</dd>
			<dt>경로</dt>
			<dd>source/</dd>
		</dl>
		<div id="file" class="file">
		    <pre class="code prettyprint linenums">/**
	@fileOverview&nbsp;iframe에&nbsp;Form을&nbsp;Submit하여&nbsp;리프레시없이&nbsp;파일을&nbsp;업로드하는&nbsp;컴포넌트
	@author&nbsp;senxation
	@version&nbsp;#__VERSION__#
**/

/**
	iframe에&nbsp;Form을&nbsp;Submit하여&nbsp;리프레시없이&nbsp;파일을&nbsp;업로드하는&nbsp;컴포넌트
	
	@class&nbsp;jindo.FileUploader
	@extends&nbsp;jindo.UIComponent
	
	@keyword&nbsp;input,&nbsp;file,&nbsp;upload,&nbsp;파일,&nbsp;업로드
**/
jindo.FileUploader&nbsp;=&nbsp;jindo.$Class({
	/**&nbsp;@lends&nbsp;jindo.FileUploader.prototype&nbsp;*/
		
	_bIsActivating&nbsp;:&nbsp;false,&nbsp;//컴포넌트의&nbsp;활성화&nbsp;여부
	_aHiddenInput&nbsp;:&nbsp;[],

	/**
		컴포넌트를&nbsp;생성한다.
		@constructor
		@param&nbsp;{HTMLElement}&nbsp;elFileSelect&nbsp;File&nbsp;Select.&nbsp;베이스(기준)&nbsp;엘리먼트
		@param&nbsp;{Object}&nbsp;[htOption]&nbsp;옵션&nbsp;객체
			@param&nbsp;{String}&nbsp;[htOption.sUrl=&quot;&quot;]&nbsp;업로드할&nbsp;서버의&nbsp;url&nbsp;(Form&nbsp;전송의&nbsp;대상)
			@param&nbsp;{String}&nbsp;[htOption.sCallback=&quot;&quot;]&nbsp;업로드&nbsp;이후에&nbsp;iframe이&nbsp;redirect될&nbsp;콜백페이지의&nbsp;주소
			@param&nbsp;{Object}&nbsp;[htOption.htData={}]&nbsp;post할&nbsp;데이터&nbsp;셋&nbsp;(예&nbsp;{&nbsp;blogId&nbsp;:&nbsp;&quot;testid&quot;&nbsp;})
			@param&nbsp;{String}&nbsp;[htOption.sFiletype=&quot;*&quot;]&nbsp;허용할&nbsp;파일의&nbsp;형식.&nbsp;ex)&nbsp;&quot;*&quot;,&nbsp;&quot;*.*&quot;,&nbsp;&quot;*.jpg&quot;,&nbsp;&quot;1234.*&quot;
			@param&nbsp;{String}&nbsp;[htOption.sMsgNotAllowedExt=&quot;업로드가허용되지않는파일형식입니다&quot;]&nbsp;허용할&nbsp;파일의&nbsp;형식이&nbsp;아닌경우에&nbsp;띄워주는&nbsp;경고창의&nbsp;문구
			@param&nbsp;{Boolean}&nbsp;[htOption.bAutoUpload=false]&nbsp;파일이&nbsp;선택됨과&nbsp;동시에&nbsp;자동으로&nbsp;업로드를&nbsp;수행할지&nbsp;여부&nbsp;(upload&nbsp;메서드&nbsp;수행)
			@param&nbsp;{Boolean}&nbsp;[htOption.bAutoReset=true]&nbsp;업로드한&nbsp;직후에&nbsp;파일폼을&nbsp;리셋&nbsp;시킬지&nbsp;여부&nbsp;(reset&nbsp;메서드&nbsp;수행)
			@param&nbsp;{Boolean}&nbsp;[htOption.bActivateOnload=true]&nbsp;로드시&nbsp;컴포넌트&nbsp;활성화여부
		@example&nbsp;
			var&nbsp;oFileUploader&nbsp;=&nbsp;new&nbsp;jindo.FileUploader(jindo.$(&quot;file_select&quot;),{
				sUrl&nbsp;&nbsp;:&nbsp;&#39;http://ajaxui.jindodesign.com/docs/components/samples/response/FileUpload.php&#39;,&nbsp;//업로드할&nbsp;서버의&nbsp;url&nbsp;(Form&nbsp;전송의&nbsp;대상)
				sCallback&nbsp;:&nbsp;&#39;http://ajaxui.jindodesign.com/svnview/Jindo_Component/FileUploader/trunk/Spec/callback.html&#39;,&nbsp;//업로드&nbsp;이후에&nbsp;iframe이&nbsp;redirect될&nbsp;콜백페이지의&nbsp;주소
				htData&nbsp;:&nbsp;{},&nbsp;//post할&nbsp;데이터&nbsp;셋&nbsp;예&nbsp;{&nbsp;blogId&nbsp;:&nbsp;&quot;testid&quot;&nbsp;}
				sFiletype&nbsp;:&nbsp;&quot;*&quot;,&nbsp;//허용할&nbsp;파일의&nbsp;형식.&nbsp;ex)&nbsp;&quot;*&quot;,&nbsp;&quot;*.*&quot;,&nbsp;&quot;*.jpg&quot;,&nbsp;&quot;1234.*&quot;
				sMsgNotAllowedExt:&nbsp;&quot;업로드가&nbsp;허용되지&nbsp;않는&nbsp;파일형식입니다&quot;,&nbsp;//허용할&nbsp;파일의&nbsp;형식이&nbsp;아닌경우에&nbsp;띄워주는&nbsp;경고창의&nbsp;문구
				bAutoUpload&nbsp;:&nbsp;false&nbsp;//파일이&nbsp;선택됨과&nbsp;동시에&nbsp;자동으로&nbsp;업로드를&nbsp;수행할지&nbsp;여부&nbsp;(upload&nbsp;메서드&nbsp;수행)
				bAutoReset&nbsp;:&nbsp;true&nbsp;//&nbsp;업로드한&nbsp;직후에&nbsp;파일폼을&nbsp;리셋&nbsp;시킬지&nbsp;여부&nbsp;(reset&nbsp;메서드&nbsp;수행)
			}).attach({
				select&nbsp;:&nbsp;function(oCustomEvent)&nbsp;{
					//파일&nbsp;선택이&nbsp;완료되었을&nbsp;때&nbsp;발생
					//이벤트&nbsp;객체&nbsp;oCustomEvent&nbsp;=&nbsp;{
					//	sValue&nbsp;(String)&nbsp;선택된&nbsp;File&nbsp;Input의&nbsp;값
					//	bAllowed&nbsp;(Boolean)&nbsp;선택된&nbsp;파일의&nbsp;형식이&nbsp;허용되는&nbsp;형식인지&nbsp;여부
					//	sMsgNotAllowedExt&nbsp;(String)&nbsp;허용되지&nbsp;않는&nbsp;파일&nbsp;형식인&nbsp;경우&nbsp;띄워줄&nbsp;경고메세지
					//}
					//bAllowed&nbsp;값이&nbsp;false인&nbsp;경우&nbsp;경고문구와&nbsp;함께&nbsp;alert&nbsp;수행&nbsp;
					//oCustomEvent.stop();&nbsp;수행시&nbsp;bAllowed&nbsp;가&nbsp;false이더라도&nbsp;alert이&nbsp;수행되지&nbsp;않음
				},
				success&nbsp;:&nbsp;function(oCustomEvent)&nbsp;{
					//업로드가&nbsp;성공적으로&nbsp;완료되었을&nbsp;때&nbsp;발생
					//이벤트&nbsp;객체&nbsp;oCustomEvent&nbsp;=&nbsp;{
					//	htResult&nbsp;(Object)&nbsp;서버에서&nbsp;전달해주는&nbsp;결과&nbsp;객체&nbsp;(서버&nbsp;설정에&nbsp;따라&nbsp;유동적으로&nbsp;선택가능)
					//}
				},
				error&nbsp;:&nbsp;function(oCustomEvent)&nbsp;{
					//업로드가&nbsp;실패했을&nbsp;때&nbsp;발생
					//이벤트&nbsp;객체&nbsp;oCustomEvent&nbsp;=&nbsp;{
					//	htResult&nbsp;:&nbsp;{&nbsp;(Object)&nbsp;서버에서&nbsp;전달해주는&nbsp;결과&nbsp;객체.&nbsp;에러발생시&nbsp;errstr&nbsp;프로퍼티를&nbsp;반드시&nbsp;포함하도록&nbsp;서버&nbsp;응답을&nbsp;설정하여야한다.
					//		errstr&nbsp;:&nbsp;(String)&nbsp;에러메시지
					//&nbsp;	}
					//}
				}
			});
	**/
	$init&nbsp;:&nbsp;function(elFileSelect,&nbsp;htOption)&nbsp;{
		
		//옵션&nbsp;초기화
		var&nbsp;htDefaultOption&nbsp;=&nbsp;{
			sUrl:&nbsp;&#39;&#39;,&nbsp;//&nbsp;upload&nbsp;url
			sCallback:&nbsp;&#39;&#39;,&nbsp;//&nbsp;callback&nbsp;url
			htData&nbsp;:&nbsp;{},
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sFiletype:&nbsp;&#39;*&#39;,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sMsgNotAllowedExt:&nbsp;&quot;업로드가&nbsp;허용되지&nbsp;않는&nbsp;파일형식입니다&quot;,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bAutoUpload:&nbsp;false,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bAutoReset:&nbsp;true,
			bActivateOnload&nbsp;:&nbsp;true&nbsp;//로드시&nbsp;컴포넌트&nbsp;활성화여부
		};
		this.option(htDefaultOption);
		this.option(htOption&nbsp;||&nbsp;{});
		
		//Base&nbsp;엘리먼트&nbsp;설정
		this._el&nbsp;=&nbsp;jindo.$(elFileSelect);
		this._wel&nbsp;=&nbsp;jindo.$Element(this._el);
		this._elForm&nbsp;=&nbsp;this._el.form;
		this._aHiddenInput&nbsp;=&nbsp;[];
		
		this.constructor._oCallback&nbsp;=&nbsp;{};
		this._wfChange&nbsp;=&nbsp;jindo.$Fn(this._onFileSelectChange,&nbsp;this);
		
		//&nbsp;upload()&nbsp;호출&nbsp;후,&nbsp;업로드가&nbsp;완료되기&nbsp;전에&nbsp;reset()&nbsp;호출하는&nbsp;경우에,&nbsp;삭제할&nbsp;콜백함수를&nbsp;참조할&nbsp;이름.
		this._sFunctionName&nbsp;=&nbsp;null;
		
		//활성화
		if(this.option(&quot;bActivateOnload&quot;))&nbsp;{
			this.activate();&nbsp;//컴포넌트를&nbsp;활성화한다.	
		}
	},
	
	_appendIframe&nbsp;:&nbsp;function()&nbsp;{
		//Iframe&nbsp;설정
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;sIframeName&nbsp;=&nbsp;&#39;tmpFrame_&#39;&nbsp;+&nbsp;this._makeUniqueId();
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this._welIframe&nbsp;=&nbsp;jindo.$Element(jindo.$(&#39;&lt;iframe&nbsp;name=&quot;&#39;&nbsp;+&nbsp;sIframeName&nbsp;+&nbsp;&#39;&quot;&nbsp;src=&quot;&quot;&gt;&#39;)).css({
			position&nbsp;:&nbsp;&#39;absolute&#39;,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;	width&nbsp;:&nbsp;&#39;1px&#39;,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;	height&nbsp;:&nbsp;&#39;1px&#39;,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;	left&nbsp;:&nbsp;&#39;-100px&#39;,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;	top&nbsp;:&nbsp;&#39;-100px&#39;
		});
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;document.body.appendChild(this._welIframe.$value());
	},
	
	_removeIframe&nbsp;:&nbsp;function()&nbsp;{
		if(this._welIframe){
			this._welIframe.leave();
		}
	},
	
	/**
		컴포넌트의&nbsp;베이스&nbsp;엘리먼트를&nbsp;가져온다.
		
		@method&nbsp;getBaseElement
		@deprecated&nbsp;getFileSelect()&nbsp;사용권장
		@return&nbsp;{HTMLElement}
	**/
	getBaseElement&nbsp;:&nbsp;function()&nbsp;{
		return&nbsp;this.getFileSelect();
	},
	
	/**
		File&nbsp;Select&nbsp;엘리먼트를&nbsp;가져온다.
		
		@method&nbsp;getFileSelect
		@return&nbsp;{HTMLElement}
	**/
	getFileSelect&nbsp;:&nbsp;function()&nbsp;{
		return&nbsp;this._el;
	},
	
	/**
		File&nbsp;Select의&nbsp;해당&nbsp;Form&nbsp;엘리먼트를&nbsp;가져온다.
		
		@method&nbsp;getFormElement
		@return&nbsp;{HTMLElement}&nbsp;
	**/
	getFormElement&nbsp;:&nbsp;function()&nbsp;{
		return&nbsp;this._elForm;
	},
	
	/**
		IFrame으로&nbsp;업로드를&nbsp;수행한다.
		
		@method&nbsp;upload
	**/
	upload&nbsp;:&nbsp;function(){
		this._appendIframe();
		
		var&nbsp;elForm&nbsp;=&nbsp;this.getFormElement(),
			welForm&nbsp;=&nbsp;jindo.$Element(elForm),
			sIframeName&nbsp;=&nbsp;this._welIframe.attr(&quot;name&quot;),
			sFunctionName&nbsp;=&nbsp;this._sFunctionName&nbsp;=&nbsp;sIframeName&nbsp;+&nbsp;&#39;_func&#39;,
			sAction&nbsp;=&nbsp;this.option(&quot;sUrl&quot;);
		
		//Form&nbsp;설정		
		welForm.attr({
			target&nbsp;:&nbsp;sIframeName,
			action&nbsp;:&nbsp;sAction
		});
		
		this._aHiddenInput.push(this._createElement(&#39;input&#39;,&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;type&#39;:&nbsp;&#39;hidden&#39;,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;name&#39;:&nbsp;&#39;callback&#39;,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;value&#39;:&nbsp;this.option(&quot;sCallback&quot;)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}));
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this._aHiddenInput.push(this._createElement(&#39;input&#39;,&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;type&#39;:&nbsp;&#39;hidden&#39;,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;name&#39;:&nbsp;&#39;callback_func&#39;,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;value&#39;:&nbsp;sFunctionName
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}));
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;(var&nbsp;k&nbsp;in&nbsp;this.option(&quot;htData&quot;))&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this._aHiddenInput.push(this._createElement(&#39;input&#39;,&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;type&#39;:&nbsp;&#39;hidden&#39;,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;name&#39;:&nbsp;k,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;value&#39;:&nbsp;this.option(&quot;htData&quot;)[k]
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}));
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
		
		for&nbsp;(var&nbsp;i&nbsp;=&nbsp;0;&nbsp;i&nbsp;&lt;&nbsp;this._aHiddenInput.length;&nbsp;i++)&nbsp;{
			elForm.appendChild(this._aHiddenInput[i]);	
		}
		
		//callback&nbsp;함수&nbsp;정의
		/**
			업로드가&nbsp;성공적으로&nbsp;완료&nbsp;되었을&nbsp;때
			
			@event&nbsp;success
			@param&nbsp;{String}&nbsp;sType&nbsp;커스텀&nbsp;이벤트명
			@param&nbsp;{Hash}&nbsp;htResult&nbsp;서버에서&nbsp;전달해주는&nbsp;결과&nbsp;객체&nbsp;(서버&nbsp;설정에&nbsp;따라&nbsp;유동적으로&nbsp;선택&nbsp;가능)
			@example
				//&nbsp;커스텀&nbsp;이벤트&nbsp;핸들링&nbsp;예제
				oComponent.attach(&quot;success&quot;,&nbsp;function(oCustomEvent)&nbsp;{&nbsp;...&nbsp;});
		**/
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.constructor._oCallback[sFunctionName&nbsp;+&nbsp;&#39;_success&#39;]&nbsp;=&nbsp;jindo.$Fn(function(oParameter){
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(this.option(&quot;bAutoReset&quot;))&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.reset();
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this._revertFormAttr();
			this.fireEvent(&quot;success&quot;,&nbsp;{&nbsp;htResult&nbsp;:&nbsp;oParameter&nbsp;});
			this._clear();
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;},&nbsp;this).bind();
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;temporary&nbsp;function&nbsp;-&nbsp;on&nbsp;error
		/**
			업로드가&nbsp;실패&nbsp;했을&nbsp;때
			
			@event&nbsp;error
			@param&nbsp;{String}&nbsp;sType&nbsp;커스텀&nbsp;이벤트명
			
			@param&nbsp;{Hash}&nbsp;htResult
				서버에서&nbsp;전달해주는&nbsp;결과&nbsp;객체,&nbsp;에러&nbsp;발생&nbsp;시&nbsp;에러메시지&nbsp;문자열&nbsp;값을&nbsp;가지는&nbsp;errstr&nbsp;프로퍼티를&nbsp;반드시&nbsp;포함하도록&nbsp;서버&nbsp;응답을&nbsp;설정해야&nbsp;한다.
				
			@example
				//&nbsp;커스텀&nbsp;이벤트&nbsp;핸들링&nbsp;예제
				oComponent.attach(&quot;error&quot;,&nbsp;function(oCustomEvent)&nbsp;{&nbsp;...&nbsp;});
		**/
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.constructor._oCallback[sFunctionName&nbsp;+&nbsp;&#39;_error&#39;]&nbsp;=&nbsp;jindo.$Fn(function(oParameter){
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(this.option(&quot;bAutoReset&quot;))&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.reset();
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this._revertFormAttr();
			this.fireEvent(&quot;error&quot;,&nbsp;{&nbsp;htResult&nbsp;:&nbsp;oParameter&nbsp;});
			this._clear();
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;},&nbsp;this).bind();
		
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;form&nbsp;submit&nbsp;and&nbsp;reset
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;elForm.submit();
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
	},
	
&nbsp;&nbsp;&nbsp;&nbsp;/**
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;File&nbsp;Select의&nbsp;선택&nbsp;값을&nbsp;초기화한다.
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@method&nbsp;reset
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@return&nbsp;{this}
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/
&nbsp;&nbsp;&nbsp;&nbsp;reset&nbsp;:&nbsp;function()&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;	
&nbsp;&nbsp;&nbsp;&nbsp;	//&nbsp;다른&nbsp;폼에는&nbsp;영향을&nbsp;주지&nbsp;않고&nbsp;파일선택폼만&nbsp;리셋시키기&nbsp;위해&nbsp;임시폼에&nbsp;넣어놓고&nbsp;리셋&nbsp;수행
&nbsp;&nbsp;&nbsp;&nbsp;	var&nbsp;elWrapForm&nbsp;=&nbsp;jindo.$(&quot;&lt;form&gt;&quot;);
&nbsp;&nbsp;&nbsp;&nbsp;	this._wel.wrap(elWrapForm);
&nbsp;&nbsp;&nbsp;&nbsp;	elWrapForm.reset();
&nbsp;&nbsp;&nbsp;&nbsp;	
&nbsp;&nbsp;&nbsp;&nbsp;	jindo.$Element(elWrapForm).replace(this._el);
&nbsp;&nbsp;&nbsp;&nbsp;	
&nbsp;&nbsp;&nbsp;&nbsp;	
&nbsp;&nbsp;&nbsp;&nbsp;	this._clear();
		
&nbsp;&nbsp;&nbsp;&nbsp;	return&nbsp;this;
&nbsp;&nbsp;&nbsp;&nbsp;},
&nbsp;&nbsp;&nbsp;&nbsp;/**
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;activate&nbsp;때&nbsp;취했던&nbsp;target,&nbsp;action&nbsp;으로&nbsp;원복&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/
&nbsp;&nbsp;&nbsp;&nbsp;_revertFormAttr&nbsp;:&nbsp;function(){
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;elForm&nbsp;=&nbsp;this.getFormElement(),
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;welForm&nbsp;=&nbsp;jindo.$Element(elForm);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;welForm.attr({
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;target&nbsp;:&nbsp;this._sPrevTarget,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;action&nbsp;:&nbsp;this._sAction
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;});
&nbsp;&nbsp;&nbsp;&nbsp;},
&nbsp;&nbsp;&nbsp;&nbsp;
	/**
		컴포넌트를&nbsp;활성화한다.
		@return&nbsp;{this}
	**/
	_onActivate&nbsp;:&nbsp;function()&nbsp;{
		var&nbsp;elForm&nbsp;=&nbsp;this.getFormElement(),
			welForm&nbsp;=&nbsp;jindo.$Element(elForm);
&nbsp;&nbsp;&nbsp;&nbsp;	
		this._sPrevTarget&nbsp;=&nbsp;welForm.attr(&quot;target&quot;);
		this._sAction&nbsp;=&nbsp;welForm.attr(&quot;action&quot;);
		
&nbsp;&nbsp;&nbsp;&nbsp;	this._el.value&nbsp;=&nbsp;&quot;&quot;;
		this._wfChange.attach(this._el,&nbsp;&quot;change&quot;);
	},
	
	/**
		컴포넌트를&nbsp;비활성화한다.
		@return&nbsp;{this}
	**/
	_onDeactivate&nbsp;:&nbsp;function()&nbsp;{
		this._wfChange.detach(this._el,&nbsp;&quot;change&quot;);
	},
	
	/**
		유일한&nbsp;id를&nbsp;랜덤하게&nbsp;생성한다.
		@ignore
	**/
&nbsp;&nbsp;&nbsp;&nbsp;_makeUniqueId:&nbsp;function(){
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;new&nbsp;Date().getMilliseconds()&nbsp;+&nbsp;Math.floor(Math.random()&nbsp;*&nbsp;100000);
&nbsp;&nbsp;&nbsp;&nbsp;},
	
	/**
		element를&nbsp;생성한다.
		@param&nbsp;{Object}&nbsp;name
		@param&nbsp;{Object}&nbsp;attributes
		@ignore
	**/
&nbsp;&nbsp;&nbsp;&nbsp;_createElement:&nbsp;function(name,&nbsp;attributes){
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;el&nbsp;=&nbsp;jindo.$(&quot;&lt;&quot;&nbsp;+&nbsp;name&nbsp;+&nbsp;&quot;&gt;&quot;);
		var&nbsp;wel&nbsp;=&nbsp;jindo.$Element(el);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;(var&nbsp;k&nbsp;in&nbsp;attributes)&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;wel.attr(k,&nbsp;attributes[k]);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;el;
&nbsp;&nbsp;&nbsp;&nbsp;},
	
	/**
		파일의&nbsp;확장자를&nbsp;검사한다.
		@param&nbsp;{String}&nbsp;sFile
		@ignore
	**/
&nbsp;&nbsp;&nbsp;&nbsp;_checkExtension:&nbsp;function(sFile){
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;aType&nbsp;=&nbsp;this.option(&quot;sFiletype&quot;).split(&#39;;&#39;);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;(var&nbsp;i&nbsp;=&nbsp;0,&nbsp;sType;&nbsp;i&nbsp;&lt;&nbsp;aType.length;&nbsp;i++)&nbsp;{
			sType&nbsp;=&nbsp;(aType[i]&nbsp;==&nbsp;&quot;*.*&quot;)&nbsp;?&nbsp;&quot;*&quot;&nbsp;:&nbsp;aType[i];
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sType&nbsp;=&nbsp;sType.replace(/^\s+|\s+$/,&nbsp;&#39;&#39;);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sType&nbsp;=&nbsp;sType.replace(/\./g,&nbsp;&#39;\\.&#39;);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sType&nbsp;=&nbsp;sType.replace(/\*/g,&nbsp;&#39;[^\\\/]+&#39;);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;((new&nbsp;RegExp(sType&nbsp;+&nbsp;&#39;$&#39;,&nbsp;&#39;gi&#39;)).test(sFile))&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;true;
			}&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;false;
&nbsp;&nbsp;&nbsp;&nbsp;},
	
	/**
		선택된&nbsp;파일이&nbsp;바뀌었을경우&nbsp;처리
		@param&nbsp;{jindo.$Event}&nbsp;we
		@ignore
	**/
	_onFileSelectChange&nbsp;:&nbsp;function(we)&nbsp;{
		var&nbsp;sValue&nbsp;=&nbsp;we.element.value,
			bAllowed&nbsp;=&nbsp;this._checkExtension(sValue),
			htParam&nbsp;=&nbsp;{
				sValue&nbsp;:&nbsp;sValue,
				bAllowed&nbsp;:&nbsp;bAllowed,
				sMsgNotAllowedExt&nbsp;:&nbsp;this.option(&quot;sMsgNotAllowedExt&quot;)&nbsp;
			};
		
		/**
			파일&nbsp;선택이&nbsp;완료되었을&nbsp;때
			
			@event&nbsp;select
			@param&nbsp;{String}&nbsp;sType&nbsp;커스텀&nbsp;이벤트명
			@param&nbsp;{String}&nbsp;sValue&nbsp;선택된&nbsp;File&nbsp;Input의&nbsp;값
			@param&nbsp;{Boolean}&nbsp;bAllowed&nbsp;선택된&nbsp;파일의&nbsp;형식이&nbsp;허용되는&nbsp;형식인지&nbsp;여부.&nbsp;(&nbsp;값이&nbsp;false인&nbsp;경우&nbsp;경고메시지&nbsp;alert&nbsp;수행)
			@param&nbsp;{String}&nbsp;sMsgNotAllowedExt&nbsp;허용되지&nbsp;않는&nbsp;파일&nbsp;형식인&nbsp;경우&nbsp;띄워줄&nbsp;경고메세지
			@param&nbsp;{Function}&nbsp;stop&nbsp;수행시&nbsp;bAllowed&nbsp;가&nbsp;false이더라도&nbsp;alert이&nbsp;수행되지&nbsp;않음
			@example
				//&nbsp;커스텀&nbsp;이벤트&nbsp;핸들링&nbsp;예제
				oComponent.attach(&quot;select&quot;,&nbsp;function(oCustomEvent)&nbsp;{&nbsp;...&nbsp;});
		**/
		if&nbsp;(sValue.length&nbsp;&amp;&amp;&nbsp;this.fireEvent(&quot;select&quot;,&nbsp;htParam))&nbsp;{
			if&nbsp;(bAllowed)&nbsp;{
				if&nbsp;(this.option(&quot;bAutoUpload&quot;))&nbsp;{
					this.upload();
				}
			}&nbsp;else&nbsp;{
				alert(htParam.sMsgNotAllowedExt);
			}
		}
	},
	
	/**
		업로드&nbsp;완료후&nbsp;호출될&nbsp;콜백함수와,&nbsp;파라미터&nbsp;전송을&nbsp;위해&nbsp;생성한&nbsp;&lt;input&nbsp;type=&quot;hidden&quot;&gt;엘리먼트와,&nbsp;&lt;iframe&gt;엘리먼트를&nbsp;지운다.
		@ignore
	**/
	_clear&nbsp;:&nbsp;function(){
		if(this._sFunctionName&nbsp;!=&nbsp;null){
			delete&nbsp;this.constructor._oCallback[this._sFunctionName&nbsp;+&nbsp;&#39;_success&#39;];
			delete&nbsp;this.constructor._oCallback[this._sFunctionName&nbsp;+&nbsp;&#39;_error&#39;];
			this._sFunctionName&nbsp;=&nbsp;null;
		}
		
		for(var&nbsp;i&nbsp;=&nbsp;0,&nbsp;length&nbsp;=&nbsp;this._aHiddenInput.length;&nbsp;i&nbsp;&lt;&nbsp;length;&nbsp;i++){
			jindo.$Element(this._aHiddenInput[i]).leave();
		}
		
		this._aHiddenInput.length&nbsp;=&nbsp;0;
		this._removeIframe();
	}
}).extend(jindo.UIComponent);</pre>
		</div>
	</div>
</div>

			</div>
		</div>
		<!-- // main content -->

	</div>
	<!-- // container -->

	<!-- footer -->
	<div id="footer">
		<p>Copyright ©<a href="http://nhncorp.com/" target="_blank">NHN Corp.</a> Platform Ajax Team. All Rights Reserved.</p>
	</div>
	<!-- // footer -->

</div>
<!-- // wrap -->

<style type="text/css">

	.item {
		transition:background .2s linear;
		-webkit-transition:background .2s linear;
		-moz-transition:background .2s linear;
		-o-transition:background .2s linear;
		-ms-transition:background .2s linear;
	}
	
	.highlight {
		background-color:#ffffd8 !important;
	}
	
	li.selected a.highlight {
		background-color:#aa8 !important;
	}
	
	.hide-deprecated .deprecated-item, .hide-inherited .inherited-item, .private {
		display:none;
	}
	
	.scrollbar-v, .scrollbar-h { display:none; }
	.scrollbar-show { display:block; }
	
	.api-page .tbl_fold .more_history { display:none; }
	
	/* FILE */
	.file pre.code {
		border:1px solid #ccc;
		padding:0;
	}
	
	.file ol {
		padding-left: 4em;
		background-color: #f9f9f9;
	}

	.file ol li {
		list-style: decimal;
		border-left:1px solid #ccc;
		padding:2px 4px;
	}
	
	.file li.L1, .file li.L3, .file li.L5, .file li.L7, .file li.L9 {
		background-color: #f9f9f9;	
	}

	.file li.L0, .file li.L2, .file li.L4, .file li.L6, .file li.L8 { 
		background-color: #f0f0f0;
	}
	
</style>
<script type="text/javascript" src="../assets/prettify/prettify-min.js"></script>
<script type="text/javascript" src="../assets/hash.js"></script>
<script type="text/javascript" src="../assets/api-list.js"></script>
<script type="text/javascript" src="../assets/api-search.js"></script>
<script type="text/javascript" src="../assets/../api.js?callback=APISearch.setData"></script>
<script type="text/javascript">
	var projectRoot = "../";
	var projectAssets = "../assets";
	
    apiDocs(projectAssets);	
</script>
</body>
</html>